In the digital age, organizations increasingly rely on digitally stored data. To protect against data loss, an organization may use a redundant storage system to store important data. Redundant storage systems may store more information than is necessary to recover the underlying data, such that even if some information is lost (e.g., from damage to a storage device) the storage system may still fully recover the underlying data.
For example, a redundant storage system may apply an erasure code to data to be stored on the system, creating a number (“n”) of data points to represent the data. Of the n data points, a certain number (“k”) may suffice to retrieve the original data from the storage system. By storing each of the n data points on an independent storage unit, n-k such storage units may fail without any loss of the original data.
In order to allow for more storage unit failures, the redundant storage system may apply an erasure code with a larger n. Unfortunately, this may also entail provisioning the redundant storage system with a larger number of storage units, which may be costly. Additionally, some redundant storage systems may require tamper-proofing, which may preclude the possibility of replacing any failed storage units with new storage units. Therefore, a designer or administrator using traditional technologies may need to over-provision the redundant storage system with storage units to ensure that the redundant storage system does not exceed its fault tolerance over its lifetime (e.g., an archival storage system may be provisioned with 100 disks to allow for 20 failures over 10 years). The instant disclosure accordingly identifies a need for improving redundant storage fault tolerance.